<!DOCTYPE html>
<meta charset="UTF-8">
<style>
.parent {
  --number-list: 30 300;
}
.target {
  --number-list: 10 100;
}
</style>
<body>
<script src="../interpolation/resources/interpolation-test.js"></script>
<script>
CSS.registerProperty({
  name: '--number-list',
  syntax: '<number>+',
  initialValue: '40 400',
  inherits: false,
});

assertInterpolation({
  property: '--number-list',
  from: 'initial',
  to: '20 200',
}, [
  {at: -0.3, is: '46 460'},
  {at: 0, is: '40 400'},
  {at: 0.5, is: '30 300'},
  {at: 1, is: '20 200'},
  {at: 1.5, is: '10 100'},
]);

assertInterpolation({
  property: '--number-list',
  from: 'inherit',
  to: '20 200',
}, [
  {at: -0.3, is: '33 330'},
  {at: 0, is: '30 300'},
  {at: 0.5, is: '25 250'},
  {at: 1, is: '20 200'},
  {at: 1.5, is: '15 150'},
]);

assertInterpolation({
  property: '--number-list',
  from: 'unset',
  to: '20 200',
}, [
  {at: -0.3, is: '46 460'},
  {at: 0, is: '40 400'},
  {at: 0.5, is: '30 300'},
  {at: 1, is: '20 200'},
  {at: 1.5, is: '10 100'},
]);

assertInterpolation({
  property: '--number-list',
  from: '-10 -100',
  to: '10 100',
}, [
  {at: -0.3, is: '-16 -160'},
  {at: 0, is: '-10 -100'},
  {at: 0.5, is: '0 0'},
  {at: 1, is: '10 100'},
  {at: 1.5, is: '20 200'}
]); 

assertInterpolation({
  property: '--number-list',
  from: '10',
  to: '100',
}, [
  {at: -0.3, is: '-17'},
  {at: 0, is: '10'},
  {at: 0.5, is: '55'},
  {at: 1, is: '100'},
  {at: 1.5, is: '145'}
]);

assertInterpolation({
  property: '--number-list',
  from: neutralKeyframe,
  to: '20 200',
}, [
  {at: -0.3, is: '7 70'},
  {at: 0, is: '10 100'},
  {at: 0.5, is: '15 150'},
  {at: 1, is: '20 200'},
  {at: 1.5, is: '25 250'},
]);

assertComposition({
  property: '--number-list',
  underlying: '50 60',
  addFrom: '10 140',
  addTo: '110 40',
}, [
  {at: -0.3, is: '30 230'},
  {at: 0, is: '60 200'},
  {at: 0.5, is: '110 150'},
  {at: 1, is: '160 100'},
  {at: 1.5, is: '210 50'},
]);

assertComposition({
  property: '--number-list',
  underlying: '50 60',
  addFrom: '10 140',
  replaceTo: '110 40',
}, [
  {at: -0.3, is: '45 248'},
  {at: 0, is: '60 200'},
  {at: 0.5, is: '85 120'},
  {at: 1, is: '110 40'},
  {at: 1.5, is: '135 -40'},
]);

</script>
</body>
